#pragma once

#include "Vector2.h"

enum MouseButtons
{
	MOUSEBUTTON_1 = 0x01,
	MOUSEBUTTON_2 = 0x02,
	MOUSEBUTTON_3 = 0x04,
	MOUSEBUTTON_4 = 0x08,
	MOUSEBUTTON_5 = 0x10,
	MOUSEBUTTON_6 = 0x20,
	MOUSEBUTTON_7 = 0x40,
	MOUSEBUTTON_8 = 0x80,

	MOUSEBUTTON_LEFT = MOUSEBUTTON_1,
	MOUSEBUTTON_RIGHT = MOUSEBUTTON_2,
	MOUSEBUTTON_MIDDLE = MOUSEBUTTON_3
};

struct MouseState
{
public:
	MouseState();
public:
	~MouseState();
public:
	static MouseState GetState();
public:
	const Vector2i	GetPosition() const;
	const int		GetWheel() const;
	const bool		IsButtonUp(MouseButtons button) const;
	const bool		IsButtonDown(MouseButtons button) const;
private:
	Vector2i		m_vPosition;
	int				m_nWheel;
	int				m_nButtonFlags;
};
